<?php

class LogCotizador extends ObjetoBase {
  var $intIdLog            ;
  var $intIdUsuario        ;
  var $strFecha            ;
  var $strHora             ;
  var $strTipo             ;
  var $strResultado        ;
  var $fltTiempoTrans      ;
  var $strXMLEnviado       ;
  var $strCabecerasEnviado ;
  var $strXMLRecibido      ;
  var $strCabecerasRecibido;
  
  function LogCotizador($intIdLog = 0) {
    $arrMapaDatos = Array();
    global $strGDBLogsPrefix;
    
    $arrMapaDatos['id_log'           ] = Array('NombreVariable' => 'intIdLog'            , 'TipoVariable' => 'I');
    $arrMapaDatos['id_usuario'       ] = Array('NombreVariable' => 'intIdUsuario'        , 'TipoVariable' => 'N');
    $arrMapaDatos['fecha'            ] = Array('NombreVariable' => 'strFecha'            , 'TipoVariable' => 'S');
    $arrMapaDatos['hora'             ] = Array('NombreVariable' => 'strHora'             , 'TipoVariable' => 'S');
    $arrMapaDatos['tipo'             ] = Array('NombreVariable' => 'strTipo'             , 'TipoVariable' => 'S');
    $arrMapaDatos['resultado'        ] = Array('NombreVariable' => 'strResultado'        , 'TipoVariable' => 'S');
    $arrMapaDatos['tiempo_trans'     ] = Array('NombreVariable' => 'fltTiempoTrans'      , 'TipoVariable' => 'N');
    $arrMapaDatos['xml_enviado'      ] = Array('NombreVariable' => 'strXMLEnviado'       , 'TipoVariable' => 'S');
    $arrMapaDatos['cabecera_enviado' ] = Array('NombreVariable' => 'strCabecerasEnviado' , 'TipoVariable' => 'S');
    $arrMapaDatos['xml_recibido'     ] = Array('NombreVariable' => 'strXMLRecibido'      , 'TipoVariable' => 'S');
    $arrMapaDatos['cabecera_recibido'] = Array('NombreVariable' => 'strCabecerasRecibido', 'TipoVariable' => 'S');
    
    $this->__ArmarDatosPrivados($strGDBLogsPrefix . 'logs_cotizador', $arrMapaDatos, 'id_log');

    $this->SeleccionarPorIndice($intIdLog);
  }
  
  /**
   * Función que loguea una cotizacion
   * 
   * @global Sesion $oSesion
   * 
   * @param string $strTipo        Tipo de llamada (Generalmente la funcion que se llama)
   * @param string $strResultado   Resultado (Exito, Fracaso, etc)
   * @param string $strXMLEnv      XML Enviado (Peticion)
   * @param string $strXMLRec      XML Recibido (Respuesta)
   * @param string $strCabEnv      Cabecera enviada
   * @param string $strCabRec      Cabecera recibida
   * @param float  $fltTiempoTrans Tiempo transcurrido (En microsegundos)
   */
  static function AgregarLogCotizador($strTipo, $strResultado, $strXMLEnv, $strXMLRec, $strCabEnv, $strCabRec, $fltTiempoTrans) {
    global $oSesion;
    $oLogCotizador = new LogCotizador();
    
    $oLogCotizador->intIdUsuario         = $oSesion->oUsuario->intIdUsuario - 0;
    $oLogCotizador->strFecha             = date("Y-m-d")  ;
    $oLogCotizador->strHora              = date("H:i:s")  ;
    $oLogCotizador->strTipo              = $strTipo       ;
    $oLogCotizador->strResultado         = $strResultado  ;
    $oLogCotizador->fltTiempoTrans       = $fltTiempoTrans;
    $oLogCotizador->strXMLEnviado        = OperacionesDB::CambioValoresNoPosiblesDB($strXMLEnv);
    $oLogCotizador->strXMLRecibido       = OperacionesDB::CambioValoresNoPosiblesDB($strXMLRec);
    $oLogCotizador->strCabecerasEnviado  = OperacionesDB::CambioValoresNoPosiblesDB($strCabEnv);
    $oLogCotizador->strCabecerasRecibido = OperacionesDB::CambioValoresNoPosiblesDB($strCabRec);
    
    $oLogCotizador->GuardarObjeto(true, true);
    return $oLogCotizador->intIdLog;
  }
  
  /**
   * Función que loguea una llamada al web service
   * 
   * @global Sesion $oSesion
   * 
   * @param string $strTipo        Tipo de llamada (Generalmente la funcion que se llama)
   * @param string $strResultado   Resultado (Exito, Fracaso, etc)
   * @param string $strXMLEnv      XML Enviado (Peticion)
   * @param string $strXMLRec      XML Recibido (Respuesta)
   * @param string $strCabEnv      Cabecera enviada
   * @param string $strCabRec      Cabecera recibida
   * @param float  $fltTiempoTrans Tiempo transcurrido (En microsegundos)
   */
  static function AgregarLogWebService($strTipo, $strResultado, $strXMLEnv, $strXMLRec, $strCabEnv, $strCabRec, $fltTiempoTrans) {
    global $oSesion         ;
    global $strGDBLogsPrefix;
    
    $oLogCotizador = new LogCotizador();
    
    $oLogCotizador->__strTablaReferencia = $strGDBLogsPrefix . "logs_ws_catalogos";
    
    $oLogCotizador->intIdUsuario         = $oSesion->oUsuario->intIdUsuario - 0;
    $oLogCotizador->strFecha             = date("Y-m-d")  ;
    $oLogCotizador->strHora              = date("H:i:s")  ;
    $oLogCotizador->strTipo              = $strTipo       ;
    $oLogCotizador->strResultado         = $strResultado  ;
    $oLogCotizador->fltTiempoTrans       = $fltTiempoTrans;
    $oLogCotizador->strXMLEnviado        = OperacionesDB::CambioValoresNoPosiblesDB($strXMLEnv);
    $oLogCotizador->strXMLRecibido       = OperacionesDB::CambioValoresNoPosiblesDB($strXMLRec);
    $oLogCotizador->strCabecerasEnviado  = OperacionesDB::CambioValoresNoPosiblesDB($strCabEnv);
    $oLogCotizador->strCabecerasRecibido = OperacionesDB::CambioValoresNoPosiblesDB($strCabRec);
    
    $oLogCotizador->GuardarObjeto(true, true);
    return $oLogCotizador->intIdLog;
  }
}

?>
